package com.zb_study.encap;

import java.sql.SQLOutput;

/**
 * 创建程序,在其中定义两个类： Account 和 AccountTest 类体会 Java 的封装性。
 * Account 类要求具有属性： 姓名（长度为 2 位 3 位或 4 位） 、 余额(必须>20)、
 * 密码（必须是六位） , 如果不满足， 则给出提示信息， 并给默认值(程序员自己定)
 * 通过 setXxx 的方法给 Account 的属性赋值。
 * 在 AccountTest 中测试
 */

public class Account {
    private String name;
    private double money;
    private String pwd;

    public Account() {
    }

    public Account(String name, double money, String pwd) {
        this.setName(name);
        this.setMoney(money);
        this.setPwd(pwd);
    }

    public String getName() {
        return name;
    }

    //姓名（长度为 2 位 3 位或 4 位）
    public void setName(String name) {
        if (name.length() >= 2 && name.length() <= 4) {
            this.name = name;
        } else {
            System.out.println("姓名长度为 2 位 3 位或 4 位,不满足为默认值，为 无名");
            this.name = "无名";
        }
    }

    public double getMoney() {
        return money;
    }

    //余额(必须>20)
    public void setMoney(double money) {
        if (money > 20) {
            this.money = money;
        } else {
            System.out.println("余额必须>20,不满足默认为 0 ");
            this.money = 0;
        }
    }

    public String getPwd() {
        return pwd;
    }

    //密码（必须是六位）
    public void setPwd(String pwd) {
        if (pwd.length() == 6) {
            this.pwd = pwd;
        } else {
            System.out.println("密码必须是六位,否则默认为 000000 ");
            this.pwd = "000000";
        }
    }

    public void showInfo() {
        System.out.println("name=" + name + ",money=" + money + ",pwd=" + pwd);
    }
}
